#include <iostream>
using namespace std;

/**
 * 默认参数
 * 1. 默认参数是函数声明时给参数赋初值
 * 2. 当调用函数时，默认参数不给参数，那么就使用默认的参数
 * 3. 需要从函数参数列表右侧开始给默认参数
 * 4. 默认参数可以有多个
 * 
 * 当函数声明和定义分开时
 * 1. 默认参数写在函数声明且函数定义不需要再重复写，声明和定义都写默认参数时会报错
 * 2. 声明函数时不写默认而是在定义时写，那么程序可能会找不到该函数声明
*/

int add(int a = 5, int b = 7)
{
    return a + b;
}

int max(int a, int b = 1);

int main()
{
    int a = 7, b = 9;
    cout << add(a) << endl;
    cout << max(a, b) << endl;
    return 0;
}

int max(int a, int b)
{
    return a > b ? a : b;
}